只不过它是OC方式封装了C语言的SQLite语句
age integer,self.age,只是帮我们建设了数据库工具FMDatabase *db = [FMDatabase databaseWithPath:dbPath];NSLog(@%@, nonatomic) IBOutlet UILabel *nameLabel;@property (retain,retain)UIImage *photo;//自界说初始化要领- (id)initWithName : (NSString *)name gender : (NSString *)gender age : (NSInteger)age photo : (UIImage *)photo;@end//=============================Person.m#import Person.h#import UIKit/UIKit.h@implementation Person- (void)dealloc{self.name = nil;self.gender = nil;self.photo = nil;[super dealloc];}//自界说初始化要领- (id)initWithName : (NSString *)name gender : (NSString *)gender age : (NSInteger)age photo : (UIImage *)photo{if (self = [super init]) {self.name = name;self.gender = gender;self.age = age;self.photo = photo;}return self; }- (NSString *)description{return [NSString stringWithFormat:@%@ %@ %ld %@, NSUserDomainMask,越发的机动,name text,(我们需要建设数据库工具时就利用这个类) FMDBDataBaseQueue: 它提供多线程下执行查找删除, FMDB是iOS平台下SQLite数据库,在跳转之前触发。
isCreat ? @建表乐成:@建表失败);}else{NSLog(@打开失败);}//给属性赋值self.db = db;NSLog(@%@,isInsert ? @插入乐成:@插入失败);} 删除: - (IBAction)delete:(UIButton *)sender {//按照条件删除BOOL result = [self.db executeUpdate:@delete from Person where id = ?,copy)NSString *name,我们push到下个页面查察结果: 需要筹备一个自界说cell、UIViewController界面和model类 传值利用: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{//获取segue起始端的视图节制器工具ViewController *rootVC = [segue sourceViewController];//通过segue完成跳转的时候会触发这个要领,?),?,data];NSLog(@%@。
self.name,gender text。
self.gender,其他数据建设表格,photo)values(?,可能更新的数据安详掩护 FMResultSet: 用来存储sql语句执行功效的集(我们执行完sql语句后获得的功效都在这个类的工具中) ViewController.m #import FMDB.h#import Person.h#import DetailViewController.h@interface ViewController ()@property(nonatomic, YES)lastObject];//在Documents文件夹里建设数据库文件 db.sqliteNSString *dbPath = [urlString stringByAppendingPathComponent:@db.sqlite];//建设数据库工具//参数:数据库的路径//执行竣事后并没有帮我们生成数据库文件,只不外它是OC方法封装了C语言的SQLite语句。
p.name,@郭美美];self.dataArray = [NSMutableArray arrayWithCapacity:0];//轮回取出表中的数据//[set next] 判定写一行是否有数据while ([set next]) {//取出每一个字段对应的数据NSInteger ID = [set intForColumn:@id];//取出id字段下的数据NSString *name = [set stringForColumn:@name];//取出name字段下的数据NSString *gender = [set stringForColumn:@gender];//取出gender字段下的数据NSInteger age = [set intForColumn:@age];//取出age字段下的数据NSData *data = [set dataForColumn:@photo];//取出photo字段下的数据//建设model类//将二进制流转成图片UIImage *image = [UIImage imageWithData:data];Person *p = [[Person alloc]initWithName:name gender:gender age:age photo: image];p.ID = ID;[self.dataArray addObject:p];[p release];}} 为了揭示结果,isUpdate ? @更新乐成:@更新失败);} 查询: - (IBAction)select:(UIButton *)sender {//查询全部FMResultSet *set = [self.db executeQuery:@select * from Person];//按条件查询// FMResultSet *set = [self.db executeQuery:@select *from Person where name = ?,@男,假如打开失败会打印报错信息 BOOL isOpen = [db open];if (isOpen) {NSLog(@打开乐成);//建设表格//executeUpdate 除了查询之外,photo blob)];NSLog(@%@,?,retain)NSMutableArray *dataSource;//属性传值利用@endDetailViewController.m#import DetailViewController.h#import Person.h#import PersonCell.h#define kPersonCell @personcell@interface DetailViewController ()@end@implementation DetailViewController- (void)dealloc{self.dataSource = nil;[super dealloc];}- (void)viewDidLoad {[super viewDidLoad];}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {// Return the number of sections.return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {// Return the number of rows in the section.return self.dataSource.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {PersonCell *cell = [tableView dequeueReusableCellWithIdentifier:kPersonCell forIndexPath:indexPath];//成立model类Person *person = self.dataSource[indexPath.row];//挪用cell赋值的要领[cell assginValues:person];return cell;} 筹备一个自界说cell:通过storyBoard实现; 机关如下: PersonCell.h#import UIKit/UIKit.h@class Person;@interface PersonCell : UITableViewCell@property (retain,person.age];self.photoView.image = person.photo;self.IDLabel.text = [NSString stringWithFormat:@%ld,有效地防备数据杂乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库工具,age,@4];NSLog(@%@,@3];NSLog(@%@, nonatomic) IBOutlet UILabel *genderLabel;@property (retain,此时可以直接利用, nonatomic) IBOutlet UILabel *ageLabel;@property (retain,且假如已经打开,*gender;@property(nonatomic)NSInteger age,利用起来越发面向工具 2.FMDB的利益:1.利用起来越发面向工具; 2.比拟苹果自带的 Core Data 数据打点东西越发的轻量级,NSHomeDirectory());//代开数据库//open操纵才帮我们真正的建设数据库文件,NSHomeDirectory());} 插入: - (IBAction)insert:(UIButton *)sender {Person *p = [[Person alloc]initWithName:@郭美美 gender:@女 age:20 photo:[UIImage imageNamed:@3.gif]];//将图片转化成NSData工具NSData *data = UIImagePNGRepresentation(p.photo);//@(p.age)参数必需是工具范例的才气利用//插入操纵 BOOL isInsert = [self.db executeUpdate:@insert into Person(name。
self.photo];}@end 或许结果不能展示全部(仅供参考): ============================== 第三方FMDB下载: ,p.gender,并且FMDB支持跨平台; 3.提供多线程下的数据安详掩护机制,@(p.age),直接返回YES,插入数据、删除数据都是用这个要领//blob 二进制流 相当于oc的NSDataBOOL isCreat = [db executeUpdate:@create table if not exists Person(id integer primary key autoincrement。
retain)FMDatabase *db;@property(nonatomic,result ? @删除乐成:@删除失败);//删除全部表格内容// BOOL isResult1 = [self.db executeUpdate:@delete from Person];//删除表格// BOOL isResult2 = [self.db executeUpdate:@drop table Person];} 更新: - (IBAction)update:(UIButton *)sender {BOOL isUpdate = [self.db executeUpdate:@update Person set gender = ? where id = ?,person.ID];}- (void)dealloc {[_nameLabel release];[_genderLabel release];[_ageLabel release];[_photoView release];[_IDLabel release];[super dealloc];}@end 筹备一个model类: Person.h#import Foundation/Foundation.h@class UIImage;@interface Person : NSObject@property(nonatomic, nonatomic) IBOutlet UILabel *IDLabel;//写一个赋值方法- (void)assginValues : (Person *)person;@end//=================================================PersonCell.m#import PersonCell.h#import Person.h@implementation PersonCell- (void)awakeFromNib {// Initialization code}//写一个赋值方法- (void)assginValues : (Person *)person{self.nameLabel.text = person.name;self.genderLabel.text = person.gender;self.ageLabel.text = [NSString stringWithFormat:@%ld,一般用来传值//获取push已往后的视图节制器工具DetailViewController *detailVC = [segue destinationViewController];//属性传值detailVC.dataSource = rootVC.dataArray;}筹备一个UIViewController: DetailViewController.h@interface DetailViewController : UITableViewController@property(nonatomic,ID;//根基数据范例可以省略内存修饰符assign,gender,因为默认利用的就是assign@property(nonatomic, nonatomic) IBOutlet UIImageView *photoView;@property (retain。
retain)NSMutableArray *dataArray;//存储查询到的所有Person工具@end@implementation ViewController- (void)dealloc{self.db = nil;self.dataArray = nil;[super dealloc];}- (NSMutableArray *)dataArray{if (_dataArray == nil) {self.dataArray = [NSMutableArray arrayWithCapacity:0];}return [[_dataArray retain]autorelease];}挪用:(先容FMDB)- (void)viewDidLoad {[super viewDidLoad];//获取Documents文件夹路径NSString *urlString = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/sqlite/13220.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
sqlite只通过文件锁就可以
时间:2021-01-23
-
返回的是一个SQLiteDatabas
时间:2021-01-23
-
只不过它是OC方式封装了
时间:2021-01-23
-
应该增加autoincrementcreate
时间:2021-01-23
-
如果没有就从Bundle中把数
时间:2021-01-23
-
Linux 部署ASP.NET SQLite 应用
时间:2021-01-23
-
只有被 sqlite3_bind_value()和
时间:2021-01-23
-
iOS开拓之SQLiteC语言接口类
时间:2021-01-23
热门文章
-
11SQLite之view(视图)
时间:2021-01-05
-
解压后拷贝出sqlite3文件到便于CMD命令行便
时间:2021-01-16
-
SQLite的架构(TheArchitectureOfSQLite)
时间:2021-01-05
-
只有被 sqlite3_bind_value()和sqlite3_result_val
时间:2021-01-23
-
应该增加autoincrementcreate table t_student (id
时间:2021-01-23
-
Android数据存储的三种方法SharedPrefrences
时间:2021-01-16
-
Android数据存储三剑客SharedPreferences File
时间:2021-01-07
-
sQlite常用语句以及sQlite developer的使用与注
时间:2020-12-24
-
3.2基于MBTiles规范进行存储 设计思路为:
时间:2021-01-13
-
SQLite数据库管理系统-我所认识的数据库引
时间:2020-12-28
